๊ฐ๋ ํํ์์ ์ฌ์ฉํ ๊ณ ๊ธ ์๋ฐ์คํฌ๋ฆฝํธ ํจํด ๋งค์นญ์ผ๋ก ๋ณต์กํ ์กฐ๊ฑด ๊ฒ์ฌ๋ฅผ ํ์ํ์ธ์. ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ๋ ๊นจ๋ํ๊ณ ๊ฐ๋ ์ฑ ๋์ผ๋ฉฐ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ธ์.
์๋ฐ์คํฌ๋ฆฝํธ ํจํด ๋งค์นญ ๊ฐ๋ ํํ์ ๋ง์คํฐํ๊ธฐ: ๋ณต์กํ ์กฐ๊ฑด ํ๊ฐ
๋์์์ด ๋ฐ์ ํ๋ ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ ์ ๊ฑธ์ณ ๊ธฐ๋ฅ ์ธํธ์ ์๋นํ ์ถ๊ฐ๊ฐ ์์์ต๋๋ค. ์ด๋ฌํ ์ถ๊ฐ ๊ธฐ๋ฅ ์ค ๊ฐ์ฅ ๊ฐ๋ ฅํ๋ฉด์๋ ์ข ์ข ์ถฉ๋ถํ ํ์ฉ๋์ง ์๋ ๊ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก ํจํด ๋งค์นญ์ด๋ฉฐ, ํนํ ๊ฐ๋ ํํ์๊ณผ ๊ฒฐํฉ๋ ๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ์ด ๊ธฐ์ ์ ํตํด ๊ฐ๋ฐ์๋ ํนํ ๋ณต์กํ ์กฐ๊ฑด ํ๊ฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ ๊นจ๋ํ๊ณ , ๊ฐ๋ ์ฑ ๋์ผ๋ฉฐ, ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด, ๊ธ๋ก๋ฒ ๊ด์ ์์ ๋ชจ๋ ์์ค์ ๊ฐ๋ฐ์๋ฅผ ์ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ธฐ๋ณธ ์ฌํญ ์ดํดํ๊ธฐ: ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์
๋ณต์กํ ๋ด์ฉ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ ํต์ฌ ๊ฐ๋ ์ ๋ํ ํ์คํ ์ดํด๋ฅผ ๋ค์ ธ๋ด ์๋ค. ํจํด ๋งค์นญ์ ํต์ฌ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํน์ ํจํด์ ๋ฐ๋ฅด๋์ง ํ์ธํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ ๋ ฅ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ์ฝ๋๋ฅผ ๋ ํํ๋ ฅ ์๊ฒ ๋ง๋ค๊ณ ๊ด๋ฒ์ํ `if/else` ๋๋ `switch` ๋ฌธ์ ํ์์ฑ์ ์ค์ผ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ๊ฐ๋ ํํ์์ ๋งค์นญ ๊ณผ์ ์ ๊ตฌ์ฒดํํ๋ ์กฐ๊ฑด์ ๋๋ค. ์ด๋ ํํฐ ์ญํ ์ ํ์ฌ ํจํด์ด ๋งค์นญ๋ *ํ์* ์ถ๊ฐ์ ์ธ ๊ฒ์ฌ๋ฅผ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ๋งค์นญ๋ ๋ฐ์ดํฐ๊ฐ ํน์ ๊ธฐ์ค์ ๋ง์กฑํ๋์ง ํ์ธํฉ๋๋ค.
๋ง์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์ผ๊ธ ์๋ฏผ(first-class citizen)์ ๋๋ค. ์ด๋ ๋ณต์กํ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๊ฐ๊ฒฐํ๊ณ ์ฐ์ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ตฌํ์ ์ฝ๊ฐ ๋ค๋ฅผ ์ ์์ง๋ง ํต์ฌ ์์น์ ๋์ผํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ํจํด ๋งค์นญ์ ์ข ์ข ํน์ case ์กฐ๊ฑด๊ณผ ๋ ผ๋ฆฌ ์ฐ์ฐ์์ ์ฌ์ฉ์ ๊ฒฐํฉํ `switch` ๋ฌธ์ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค. ๊ฐ๋ ํํ์์ `if` ๋ฌธ์ด๋ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ `case` ์กฐ๊ฑด ๋ด์ ํตํฉ๋ ์ ์์ต๋๋ค. ๋ ์ต๊ทผ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ์ ์ ์ต์ ๋ ์ฒด์ด๋, nullish coalescing(๋ ๋ณํฉ ์ฐ์ฐ์), ๊ทธ๋ฆฌ๊ณ `match` ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ํจํด ๋งค์นญ ์ ์์ ํตํด ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋์ ํ์ฌ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋์ฑ ํฅ์์ํต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์กฐ๊ฑด๋ฌธ์ ์งํ
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์กฐ๊ฑด๋ถ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฐ์ ํด ์์ต๋๋ค. ์ด๊ธฐ์๋ `if/else` ๋ฌธ์ด ์ฃผ์ ๋๊ตฌ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์ปค์ง๋ฉด์ ์ด๋ฌํ ๋ฌธ์ ์ค์ฒฉ๋๊ณ ๋ณต์กํด์ ธ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ์ ํ์์ผฐ์ต๋๋ค. `switch` ๋ฌธ์ ๋์์ ์ ๊ณตํ์ฌ ์ฌ๋ฌ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ณด๋ค ๊ตฌ์กฐํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ์ง๋ง, ์ ์คํ๊ฒ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋๋ก๋ ์ฅํฉํด์ง๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ ์ต๋๋ค.
๋์คํธ๋ญ์ฒ๋ง(๊ตฌ์กฐ ๋ถํด ํ ๋น) ๋ฐ ์คํ๋ ๋ ๋ฌธ๋ฒ๊ณผ ๊ฐ์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ๋์ ์ผ๋ก ์กฐ๊ฑด๋ถ ๋ก์ง์ ์งํ์ด ๋์ด์ก์ต๋๋ค. ๋์คํธ๋ญ์ฒ๋ง์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์ ๋ฐฐ์ด์์ ๊ฐ์ ๋ ์ฝ๊ฒ ์ถ์ถํ์ฌ ์กฐ๊ฑด ํํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์คํ๋ ๋ ๋ฌธ๋ฒ์ ๋ฐ์ดํฐ์ ๋ณํฉ ๋ฐ ์กฐ์์ ๋จ์ํํฉ๋๋ค. ๋ํ ์ต์ ๋ ์ฒด์ด๋ (`?.`) ๋ฐ nullish coalescing ์ฐ์ฐ์ (`??`)์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ์ฌ์ ์ธ null ๋๋ undefined ๊ฐ์ ์ฒ๋ฆฌํ๋ ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ธด ์กฐ๊ฑด ๊ฒ์ฌ์ ํ์์ฑ์ ์ค์ฌ์ค๋๋ค. ์ด๋ฌํ ๋ฐ์ ์ ํจํด ๋งค์นญ ๋ฐ ๊ฐ๋ ํํ์๊ณผ ํจ๊ป ๊ฐ๋ฐ์๊ฐ ํนํ ๋ณต์กํ ์กฐ๊ฑด์ ํ๊ฐํ ๋ ๋ ํํ๋ ฅ ์๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค.
์ค์ฉ์ ์ธ ์์ฉ ๋ฐ ์์
์๋ฐ์คํฌ๋ฆฝํธ์์ ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ํจ๊ณผ์ ์ผ๋ก ์ ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ค์ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ค์ํ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ณตํต์ ์ผ๋ก ๋ฐ์ํ๋ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃจ๋ฉด์ ์ด๋ฌํ ๊ธฐ์ ์ด ์ฝ๋ ํ์ง๊ณผ ํจ์จ์ฑ์ ์ด๋ป๊ฒ ํฅ์์ํฌ ์ ์๋์ง ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค. ๊ฐ๋ ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๊ธฐ ์ํด์๋ ์ฝ๋ ์์ ๊ฐ ํ์์ ์ด๋ผ๋ ์ ์ ๊ธฐ์ตํ์ธ์.
์์ 1: ์ฌ์ฉ์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ (๊ธ๋ก๋ฒ ๊ด์ )
์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์๊ฐ ๊ณ์ ์ ์์ฑํ ์ ์๋๋ก ํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ๊ฑฐ์ฃผ ๊ตญ๊ฐ์ ๋ฐ๋ผ ์ฌ์ฉ์์ ๋์ด๋ฅผ ๊ฒ์ฆํ๊ณ ํ์ง ๊ท์ ๋ฐ ๊ด์ต์ ์กด์คํด์ผ ํฉ๋๋ค. ๋ฐ๋ก ์ด๋ด ๋ ๊ฐ๋ ํํ์์ด ๋น์ ๋ฐํฉ๋๋ค. ๋ค์ ์ฝ๋ ์ค๋ํซ์ `switch` ๋ฌธ๊ณผ ๊ฐ๋ ํํ์(`if` ์ฌ์ฉ)์ ์ฌ์ฉํ์ฌ ๊ตญ๊ฐ์ ๋ฐ๋ผ ์ฌ์ฉ์ ๋์ด๋ฅผ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค:
function validateAge(country, age) {
switch (country) {
case 'USA':
if (age >= 21) {
return 'Allowed';
} else {
return 'Not allowed';
}
case 'UK':
if (age >= 18) {
return 'Allowed';
} else {
return 'Not allowed';
}
case 'Japan':
if (age >= 20) {
return 'Allowed';
} else {
return 'Not allowed';
}
default:
return 'Country not supported';
}
}
console.log(validateAge('USA', 25)); // Output: Allowed
console.log(validateAge('UK', 17)); // Output: Not allowed
console.log(validateAge('Japan', 21)); // Output: Allowed
console.log(validateAge('Germany', 16)); // Output: Country not supported
์ด ์์ ์์ `switch` ๋ฌธ์ ๊ตญ๊ฐ๋ฅผ ๊ฒฐ์ ํ๋ ํจํด ๋งค์นญ์ ๋ํ๋ ๋๋ค. ๊ฐ `case` ๋ด์ `if` ๋ฌธ์ ๊ฐ๋ ํํ์์ผ๋ก ์๋ํ์ฌ ํด๋น ๊ตญ๊ฐ์ ํน์ ๊ท์น์ ๋ฐ๋ผ ๋์ด๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ์ด ๊ตฌ์กฐํ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ตญ๊ฐ ํ์ธ๊ณผ ๋์ด ๊ฒ์ฆ์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ์ฌ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค. ๊ฐ ๊ตญ๊ฐ์ ํน์์ฑ์ ๊ณ ๋ คํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. ์๋ฅผ ๋ค์ด, ์ฑ์ธ์ ๋ค๋ฅธ ์ธก๋ฉด์ด ๋น์ทํ๊ฒ ์ ์๋๋๋ผ๋ ๋ฒ์ ์์ฃผ ์ฐ๋ น์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์์ 2: ํ์ ๊ณผ ๊ฐ์ ๊ธฐ๋ฐํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ (๊ตญ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ)
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ๊ตญ์ ์์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํด ๋ณด์ธ์. ์ด ์์ค๋ค์ ๋ค๋ฅธ ํ์(์: JSON, XML)๊ณผ ๋ค์ํ ๋ฐ์ดํฐ ํ์ (์: ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ)์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์ด๋ฌํ ๋ค์ํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ์ ํ์ ๊ณผ ๊ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ์์ ๋ ํ์ ๊ฒ์ฌ๋ฅผ ์ํด `typeof` ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ๋ ํํ์์ ์ํด `if` ๋ฌธ์ ํ์ฉํฉ๋๋ค:
function processData(data) {
switch (typeof data) {
case 'string':
if (data.length > 10) {
return `String (long): ${data}`;
} else {
return `String (short): ${data}`;
}
case 'number':
if (data > 100) {
return `Number (large): ${data}`;
} else {
return `Number (small): ${data}`;
}
case 'boolean':
return `Boolean: ${data}`;
case 'object':
if (Array.isArray(data)) {
if (data.length > 0) {
return `Array with ${data.length} elements`;
} else {
return 'Empty array';
}
} else {
return 'Object';
}
default:
return 'Unknown data type';
}
}
console.log(processData('This is a long string')); // Output: String (long): This is a long string
console.log(processData('short')); // Output: String (short): short
console.log(processData(150)); // Output: Number (large): 150
console.log(processData(50)); // Output: Number (small): 50
console.log(processData(true)); // Output: Boolean: true
console.log(processData([1, 2, 3])); // Output: Array with 3 elements
console.log(processData([])); // Output: Empty array
console.log(processData({name: 'John'})); // Output: Object
์ด ์์ ์์ `switch` ๋ฌธ์ ๋ฐ์ดํฐ ํ์ ์ ๊ฒฐ์ ํ๋ฉฐ ํจํด ๋งค์ฒ ์ญํ ์ ํฉ๋๋ค. ๊ฐ `case` ๋ด์ `if` ๋ฌธ์ ๊ฐ๋ ํํ์์ผ๋ก ์๋ํ์ฌ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋ฅผ ์ธ๋ถํํฉ๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๋ค์ํ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ทธ ํน์ ์์ฑ์ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฏธ์น๋ ์ํฅ์ ๊ณ ๋ คํ์ธ์. ํฐ ํ ์คํธ ํ์ผ์ ์ฒ๋ฆฌํ๋ฉด ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ชจ๋ ์๋๋ฆฌ์ค์ ๋ํด ์ฒ๋ฆฌ ๋ก์ง์ด ์ต์ ํ๋์๋์ง ํ์ธํ์ธ์. ๊ตญ์ ์์ค์์ ๋ฐ์ดํฐ๊ฐ ์ฌ ๋ ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ๊ณผ ๋ฌธ์ ์งํฉ์ ์ ์ํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ์์์ ๋ฐ๋์ ๋ฐฉ์งํด์ผ ํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋๋ค.
์์ 3: ๊ฐ๋จํ ๊ท์น ์์ง ๊ตฌํ (๊ตญ๊ฒฝ ๊ฐ ๋น์ฆ๋์ค ๊ท์น)
๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ์ํ ๊ท์น ์์ง์ ๊ฐ๋ฐํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ๊ณ ๊ฐ์ ์์น์ ์ฃผ๋ฌธ ๋ฌด๊ฒ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐฐ์ก๋น๋ฅผ ์ ์ฉํด์ผ ํฉ๋๋ค. ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์ด๋ฐ ์ ํ์ ์๋๋ฆฌ์ค์ ์๋ฒฝํฉ๋๋ค. ์๋ ์์ ์์๋ `switch` ๋ฌธ๊ณผ `if` ํํ์์ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ ๊ตญ๊ฐ์ ์ฃผ๋ฌธ ๋ฌด๊ฒ์ ๋ฐ๋ผ ๋ฐฐ์ก๋น๋ฅผ ๊ฒฐ์ ํฉ๋๋ค:
function calculateShippingCost(country, weight) {
switch (country) {
case 'USA':
if (weight <= 1) {
return 5;
} else if (weight <= 5) {
return 10;
} else {
return 15;
}
case 'Canada':
if (weight <= 1) {
return 7;
} else if (weight <= 5) {
return 12;
} else {
return 17;
}
case 'EU': // Assume EU for simplicity; consider individual countries
if (weight <= 1) {
return 10;
} else if (weight <= 5) {
return 15;
} else {
return 20;
}
default:
return 'Shipping not available to this country';
}
}
console.log(calculateShippingCost('USA', 2)); // Output: 10
console.log(calculateShippingCost('Canada', 7)); // Output: 17
console.log(calculateShippingCost('EU', 3)); // Output: 15
console.log(calculateShippingCost('Australia', 2)); // Output: Shipping not available to this country
์ด ์ฝ๋๋ ๊ตญ๊ฐ ๊ธฐ๋ฐ ํจํด ๋งค์นญ์ ์ํด `switch` ๋ฌธ์ ์ฌ์ฉํ๊ณ , ๊ฐ `case` ๋ด์์ `if/else if/else` ์ฒด์ธ์ ์ฌ์ฉํ์ฌ ๋ฌด๊ฒ ๊ธฐ๋ฐ ๋ฐฐ์ก๋น๋ฅผ ์ ์ํฉ๋๋ค. ์ด ์ํคํ ์ฒ๋ ๊ตญ๊ฐ ์ ํ๊ณผ ๋น์ฉ ๊ณ์ฐ์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ์ฌ ์ฝ๋๋ฅผ ์ฝ๊ฒ ํ์ฅํ ์ ์๋๋ก ํฉ๋๋ค. ๋น์ฉ์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. EU๋ ๋จ์ผ ๊ตญ๊ฐ๊ฐ ์๋๋ฉฐ, ํ์๊ตญ ๊ฐ์ ๋ฐฐ์ก๋น๊ฐ ํฌ๊ฒ ๋ค๋ฅผ ์ ์๋ค๋ ์ ์ ๋ช ์ฌํ์ธ์. ๊ตญ์ ๋ฐ์ดํฐ๋ก ์์ ํ ๋๋ ํตํ ๋ณํ์ ์ ํํ๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ํญ์ ๋ฐฐ์ก ๊ท์ ๋ฐ ์์ ๊ด์ธ์ ์ง์ญ์ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ์ธ์.
๊ณ ๊ธ ๊ธฐ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
์์ ์์ ๋ ๊ธฐ๋ณธ์ ์ธ ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ๋ณด์ฌ์ฃผ์์ง๋ง, ์ฝ๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ๋ ๊ณ ๊ธ ๊ธฐ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ฝ๋๋ฅผ ๊ฐ์ ํ๊ณ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ ๋ชจ๋ ๊ธ๋ก๋ฒ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํฉ๋๋ค.
ํฅ์๋ ํจํด ๋งค์นญ์ ์ํ ๋์คํธ๋ญ์ฒ๋ง ํ์ฉ
๋์คํธ๋ญ์ฒ๋ง(๊ตฌ์กฐ ๋ถํด ํ ๋น)์ ๊ฐ์ฒด์ ๋ฐฐ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ํจํด ๋งค์นญ์ ๊ธฐ๋ฅ์ ๋์ฑ ํฅ์์ํต๋๋ค. `switch` ๋ฌธ๊ณผ ๊ฒฐํฉํ๋ฉด ๋์คํธ๋ญ์ฒ๋ง์ ํตํด ๋ ๊ตฌ์ฒด์ ์ด๊ณ ๊ฐ๊ฒฐํ ๋งค์นญ ์กฐ๊ฑด์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ ์ฉํฉ๋๋ค. ๋ค์์ ๋์คํธ๋ญ์ฒ๋ง๊ณผ ๊ฐ๋ ํํ์์ ๋ณด์ฌ์ฃผ๋ ์์ ์ ๋๋ค:
function processOrder(order) {
switch (order.status) {
case 'shipped':
if (order.items.length > 0) {
const {shippingAddress} = order;
if (shippingAddress.country === 'USA') {
return 'Order shipped to USA';
} else {
return 'Order shipped internationally';
}
} else {
return 'Shipped with no items';
}
case 'pending':
return 'Order pending';
case 'cancelled':
return 'Order cancelled';
default:
return 'Unknown order status';
}
}
const order1 = { status: 'shipped', items: [{name: 'item1'}], shippingAddress: {country: 'USA'} };
const order2 = { status: 'shipped', items: [{name: 'item2'}], shippingAddress: {country: 'UK'} };
const order3 = { status: 'pending', items: [] };
console.log(processOrder(order1)); // Output: Order shipped to USA
console.log(processOrder(order2)); // Output: Order shipped internationally
console.log(processOrder(order3)); // Output: Order pending
์ด ์์ ์์ ์ฝ๋๋ `case` ์กฐ๊ฑด ๋ด์์ ๋์คํธ๋ญ์ฒ๋ง(`const {shippingAddress} = order;`)์ ์ฌ์ฉํ์ฌ `order` ๊ฐ์ฒด์์ ํน์ ์์ฑ์ ์ถ์ถํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ `if` ๋ฌธ์ ๊ฐ๋ ํํ์์ผ๋ก ์๋ํ์ฌ ์ถ์ถ๋ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค. ์ด๋ฅผ ํตํด ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ํจํด์ ๋ง๋ค ์ ์์ต๋๋ค.
ํจํด ๋งค์นญ๊ณผ ํ์ ๊ฐ๋ ๊ฒฐํฉ
ํ์ ๊ฐ๋๋ ํน์ ๋ฒ์ ๋ด์์ ๋ณ์์ ํ์ ์ ์ขํ๋ ๋ฐ ์ ์ฉํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ ์ ๋๋ค. ์ด๋ ํนํ ๋ณ์์ ํ์ ์ ๋ฏธ๋ฆฌ ์ ์ ์๋ ์ธ๋ถ ์์ค๋ API์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ ์ฉํฉ๋๋ค. ํ์ ๊ฐ๋๋ฅผ ํจํด ๋งค์นญ๊ณผ ๊ฒฐํฉํ๋ฉด ํ์ ์์ ์ฑ์ ๋ณด์ฅํ๊ณ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด:
function processApiResponse(response) {
if (response && typeof response === 'object') {
switch (response.status) {
case 200:
if (response.data) {
return `Success: ${JSON.stringify(response.data)}`;
} else {
return 'Success, no data';
}
case 400:
return `Bad Request: ${response.message || 'Unknown error'}`;
case 500:
return 'Internal Server Error';
default:
return 'Unknown error';
}
}
return 'Invalid response';
}
const successResponse = { status: 200, data: {name: 'John Doe'} };
const badRequestResponse = { status: 400, message: 'Invalid input' };
console.log(processApiResponse(successResponse)); // Output: Success: {"name":"John Doe"}
console.log(processApiResponse(badRequestResponse)); // Output: Bad Request: Invalid input
console.log(processApiResponse({status: 500})); // Output: Internal Server Error
console.log(processApiResponse({})); // Output: Unknown error
์ด ์ฝ๋์์ `if` ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉ๋ `typeof` ๊ฒ์ฌ๋ ํ์ ๊ฐ๋ ์ญํ ์ ํ์ฌ `switch` ๋ฌธ์ ์งํํ๊ธฐ ์ ์ `response`๊ฐ ์ค์ ๋ก ๊ฐ์ฒด์ธ์ง ํ์ธํฉ๋๋ค. `switch` ์ผ์ด์ค ๋ด์์ `if` ๋ฌธ์ ํน์ ์ํ ์ฝ๋์ ๋ํ ๊ฐ๋ ํํ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํจํด์ ํ์ ์์ ์ฑ์ ํฅ์์ํค๊ณ ์ฝ๋ ํ๋ฆ์ ๋ช ํํ๊ฒ ํฉ๋๋ค.
ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์ ์ฌ์ฉ์ ์ด์
ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ํตํฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ง์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค:
- ๊ฐ๋ ์ฑ ํฅ์: ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ๋ก์ง์ ๋ ๋ช ์์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด ์ฝ๋ ๊ฐ๋ ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ(ํจํด ๋งค์นญ ์์ฒด์ ์ด๋ฅผ ๊ตฌ์ฒดํํ๋ ๊ฐ๋)๋ ์ฝ๋์ ์๋๋ฅผ ํ์ ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ์ ์ง ๊ด๋ฆฌ์ฑ ํฅ์: ๊ฐ๋ ํํ์๊ณผ ๊ฒฐํฉ๋ ํจํด ๋งค์นญ์ ๋ชจ๋์ ํน์ฑ์ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ๋ก์ง์ ๋ณ๊ฒฝํ๊ฑฐ๋ ํ์ฅํด์ผ ํ ๋ ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ํน์ `case` ๋๋ ๊ฐ๋ ํํ์์ ์์ ํ ์ ์์ต๋๋ค.
- ๋ณต์ก์ฑ ๊ฐ์: ์ค์ฒฉ๋ `if/else` ๋ฌธ์ ๊ตฌ์กฐํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๋์ฒดํจ์ผ๋ก์จ ์ฝ๋ ๋ณต์ก์ฑ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ ํนํ ํฌ๊ณ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ฉํฉ๋๋ค.
- ํจ์จ์ฑ ์ฆ๊ฐ: ํจํด ๋งค์นญ์ ํนํ ๋ณต์กํ ์กฐ๊ฑด์ ํ๊ฐํด์ผ ํ๋ ์๋๋ฆฌ์ค์์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค. ์ ์ด ํ๋ฆ์ ๊ฐ์ํํจ์ผ๋ก์จ ์ฝ๋๊ฐ ๋ ๋นจ๋ฆฌ ์คํ๋๊ณ ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ์๋นํ ์ ์์ต๋๋ค.
- ๋ฒ๊ทธ ๊ฐ์: ํจํด ๋งค์นญ์ด ์ ๊ณตํ๋ ๋ช ํ์ฑ์ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ณ ์ค๋ฅ๋ฅผ ์๋ณํ๊ณ ์์ ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ ๋ ๊ฒฌ๊ณ ํ๊ณ ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด์ด์ง๋๋ค.
๊ณผ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก
ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์๋นํ ์ด์ ์ ์ ๊ณตํ์ง๋ง ์ ์ฌ์ ์ธ ๊ณผ์ ๋ฅผ ์ธ์ํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ ์ด ์ ๊ทผ๋ฒ์ ์ต๋ํ ํ์ฉํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
- ๊ณผ๋ํ ์ฌ์ฉ: ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ธ์. ํญ์ ๊ฐ์ฅ ์ ์ ํ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค. ๊ฐ๋จํ ๋ก์ง์ ์ฌ์ ํ ๊ธฐ๋ณธ์ ์ธ `if/else` ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ์ ํํ๋ ์ ์์ต๋๋ค. ์์ ์ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ์ธ์.
- ๊ฐ๋ ๋ด์ ๋ณต์ก์ฑ: ๊ฐ๋ ํํ์์ ๊ฐ๊ฒฐํ๊ณ ์ง์ค์ ์ผ๋ก ์ ์งํ์ธ์. ๊ฐ๋ ํํ์ ๋ด์ ๋ณต์กํ ๋ก์ง์ ๊ฐ๋ ์ฑ ํฅ์์ด๋ผ๋ ๋ชฉ์ ์ ๋ฌด๋๋จ๋ฆด ์ ์์ต๋๋ค. ๊ฐ๋ ํํ์์ด ๋๋ฌด ๋ณต์กํด์ง๋ฉด ๋ณ๋์ ํจ์๋ ์ ์ฉ ๋ธ๋ก์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ: ํจํด ๋งค์นญ์ด ์ข ์ข ์ฑ๋ฅ ํฅ์์ผ๋ก ์ด์ด์ง์ง๋ง, ์ง๋์น๊ฒ ๋ณต์กํ ๋งค์นญ ํจํด์ ์ ์ํ์ธ์. ํนํ ์ฑ๋ฅ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฝ๋์ ์ฑ๋ฅ ์ํฅ์ ํ๊ฐํ์ธ์. ์ฒ ์ ํ ํ ์คํธํ์ธ์.
- ์ฝ๋ ์คํ์ผ ๋ฐ ์ผ๊ด์ฑ: ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ์ ํ๋ฆฝํ๊ณ ์ค์ํ์ธ์. ์ผ๊ด๋ ์คํ์ผ์ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ํต์ฌ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์ ํ๊ณผ ํจ๊ป ์์ ํ ๋ ํนํ ์ค์ํฉ๋๋ค. ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ ์ ํ์ธ์.
- ์ค๋ฅ ์ฒ๋ฆฌ: ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์ฌ์ฉํ ๋๋ ํญ์ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๊ณ ๋ คํ์ธ์. ์๊ธฐ์น ์์ ์ ๋ ฅ๊ณผ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ์ฝ๋๋ฅผ ์ค๊ณํ์ธ์. ๊ฐ๋ ฅํ ์ค๋ฅ ์ฒ๋ฆฌ๋ ๋ชจ๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ํ ์คํธ: ์ฃ์ง ์ผ์ด์ค ๋ฐ ์ ํจํ์ง ์์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฐ๋ฅํ ์ ๋ ฅ ์๋๋ฆฌ์ค๋ฅผ ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฒ ์ ํ ํ ์คํธํ์ธ์. ํฌ๊ด์ ์ธ ํ ์คํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ฏธ๋ ๋ฐฉํฅ: `match` ๊ตฌ๋ฌธ ์์ฉ (์ ์๋จ)
์๋ฐ์คํฌ๋ฆฝํธ ์ปค๋ฎค๋ํฐ๋ ์ ์ฉ ํจํด ๋งค์นญ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ ๊ทน์ ์ผ๋ก ํ์ํ๊ณ ์์ต๋๋ค. ๊ณ ๋ ค ์ค์ธ ํ ๊ฐ์ง ์ ์์ ํจํด ๋งค์นญ์ ์ํํ๋ ๋ ์ง์ ์ ์ด๊ณ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋ `match` ๊ตฌ๋ฌธ์ ํฌํจํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์์ง ํ์คํ๋์ง ์์์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์ ์ง์์ ๊ฐ์ ํ๊ณ ์ฝ๋์ ๋ช ํ์ฑ๊ณผ ํจ์จ์ฑ์ ํฅ์์ํค๋ ์ค์ํ ๋จ๊ณ์ ๋๋ค. `match` ๊ตฌ๋ฌธ์ ์ ํํ ์ธ๋ถ ์ฌํญ์ ์์ง ๋ฐ์ ์ค์ด์ง๋ง, ์ด๋ฌํ ๊ฐ๋ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ์ ํ๊ณ ์ด ๊ธฐ๋ฅ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํตํฉ๋ ๊ฐ๋ฅ์ฑ์ ๋๋นํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์์๋๋ `match` ๊ตฌ๋ฌธ์ ์์ ๋ ผ์๋ ๋ง์ ์์ ๋ฅผ ๊ฐ์ํํ๊ณ ๋ณต์กํ ์กฐ๊ฑด๋ถ ๋ก์ง์ ๊ตฌํํ๋ ๋ฐ ํ์ํ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ์ค์ฌ์ค ๊ฒ์ ๋๋ค. ๋ํ ๋ ๋ณต์กํ ํจํด๊ณผ ๊ฐ๋ ํํ์ ์ง์๊ณผ ๊ฐ์ ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ์ธ์ด์ ๊ธฐ๋ฅ์ ๋์ฑ ํฅ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๊ฒฐ๋ก : ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ญ๋ ๊ฐํ
๊ฐ๋ ํํ์์ ํจ๊ณผ์ ์ธ ์ฌ์ฉ๊ณผ ํจ๊ป ์๋ฐ์คํฌ๋ฆฝํธ ํจํด ๋งค์นญ์ ๋ง์คํฐํ๋ ๊ฒ์ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ ฅํ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ๊ตฌํํจ์ผ๋ก์จ ์ฝ๋ ๊ฐ๋ ์ฑ, ์ ์ง ๊ด๋ฆฌ์ฑ ๋ฐ ํจ์จ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ ์ค์ ์์ , ๊ณ ๊ธ ๊ธฐ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ๊ณ ๋ ค ์ฌํญ์ ํฌํจํ์ฌ ํจํด ๋งค์นญ ๋ฐ ๊ฐ๋ ํํ์์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํ์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ณด๋ฅผ ์ป๊ณ ์ด๋ฌํ ๊ธฐ์ ์ ์ฑํํ๋ ๊ฒ์ด ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ํจํด ๋งค์นญ๊ณผ ๊ฐ๋ ํํ์์ ์์ฉํ์ฌ ์ฐ์ํ๊ณ ํจ๊ณผ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ์ธ์. ์ด๋ฌํ ๊ธฐ์ ์ ๋ฅ์ํ ๊ฐ๋ฐ์, ํนํ ๊ธ๋ก๋ฒ ๊ณ ๊ฐ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋์ ๋ฏธ๋๋ ๋ฐ์ต๋๋ค. ๊ฐ๋ฐ ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ๋ฏธ์น๋ ์ํฅ์ ๊ณ ๋ คํ์ธ์. ๋ชจ๋ ์ง์ญ์์ ๊ณ ํ์ง ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด ํญ์ ํ ์คํธํ๊ณ ๊ฐ๋ ฅํ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ์ธ์.
์ด๋ฌํ ๊ฐ๋ ์ ์ดํดํ๊ณ ํจ๊ณผ์ ์ผ๋ก ์ ์ฉํจ์ผ๋ก์จ ๋ชจ๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๋ ์ฑ ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.